1. Field of the Invention
The present invention relates to a data communication system, a data transmitting apparatus, a data transmitting method, and a method for determining a packet size and redundancy. In particular, the present invention relates to a data communication system in which, when transmission data is packetized and processed by redundant encoding in predetermined time units, and the resultant data is transmitted from a data transmitting apparatus to a data receiving apparatus, by determining a packet size on the basis of a data size of the transmission data in each predetermined time unit, sufficient tolerance for burst loss can be obtained even at a low data rate without increasing a delay.
2. Description of the Related Art
Recently, in data transmission on the Internet, in addition to services based on a downloading transmission system that has been used, services based on a streaming transmission system have increased. By way of example, in multimedia transmission with video files and audio files, in the downloading transmission system, a data file is temporarily downloaded from a distribution server to a receiving terminal, and the downloaded data file is subsequently played back. Thus, the downloading transmission system is unable to play back the data file until transfer of the data file completely finishes. Accordingly, the downloading transmission system is unsuitable to long-duration playback, realtime playback, etc. In the streaming transmission system, received data can be played back while data is being transferred from a transmitting end to a receiving terminal. Accordingly, the streaming transmission system is used in Internet services such as Internet telephone, remote video conferencing, and video-on-demand.
Internet technologies adapted for the streaming transmission system include the RTP (Realtime Transport Protocol) defined in IETF (Internet Engineering Task Force) RFC (Request For Comments) 3550. In data transmission based on the RTP, by adding a time stamp to each packet, and grasping a temporal relationship between a transmitting end and a receiving end on the basis of the time stamp, data can be played back without being affected by delay fluctuation (jitter) in packet transfer, with synchronization established.
Here, the RTP does not guarantee data transfer in realtime. Since priority, setting, and management of packet delivery are not covered by a transport service provided by the RTP, there is a possibility that RTP packets may have delivery delay and a packet loss similarly to other types of packets. Even if such a situation occurs, the receiving end can play back data by using only packets arriving within an expected time. This is because, even if video or audio data has some data loss, the data can be played back to some extent.
A packet whose delivery is delayed and a packet in which an error has occurred are directly discarded by the receiving end. In other words, there is a problem in that, if high quality data is delivered, the data may not be sufficiently played back due to a packet loss and error. In particular, since it is said that a wired interval has 10−5 or more errors and a wireless interval has 10−3 or more errors, from a viewpoint of retaining the quality of distribution media, direct use of the RTP leads to low reliability.
Accordingly, there is a method for issuing a retransmission request and transmitting retransmission packets in accordance with the TCP (Transmission Control Protocol) having high reliability in data transfer. However, since the TCP has a low throughput and a large delay although it is resistant to error, there is a possibility that, even if packets are retransmitted, the packets may be received late for a playback time.
As a technique for improving data transmission reliability by using the RTP, there is the so-called “FEC (Forward Error Correction) method” (see J. Rosenberg, et al., “An RTP Payload Format for Generic Forward Error Correction”, Request for Comments:2733, [online], December 1999, IETF Network Working Group, [Searched on Dec. 18, 2006], Internet <URL:http://www.ietf.org/rfc/rfc2733.txt>). In the FEC method, redundant encoding is performed by using an error correcting code such as an RS (Reed-Solomon) code, with a plurality of packets used as an FEC block. For example, when an (n, k) RS code is used, (n−k) redundant packets can be generated, where k represents the number of original data packets, and n>k. In this case, when a transmitting apparatus transmits a total of n packets, and a receiving apparatus receives k packets among the n packets, RS decoding can restore k original data packets.